import { AutoGetUserInfo } from "../../utils/data/apis";
import { event } from "../../utils/interface";
import msg from "../../utils/model/msg";

let tapCount: number = 0; // 神秘的点击计数
let tapTimer: number | undefined = void 0; // 神秘的timer
const app = getApp();
// pages/individual/stu/index.ts
Page({

  /**
   * 页面的初始数据
   */
  data: {
    id_flag: '', // 用户身份
    userInfo: {}, // 用户信息
    id_flag_zh: {
      'student': '学生',
      'teacher': '导师',
      'parent': '家长'
    }, // 用户身份中文
    imgPrefix: app.globalData.imgPrefix, // 不完整图片url
    disable: true, // 记录页面是否隐藏
  },
  /**
   * @function 获取用户信息
   */
  getUserData: async function() {
    const id_flag = wx.getStorageSync("id_flag");
    const userInfo = wx.getStorageSync("user");
    console.log(userInfo);
    if(userInfo.openid && id_flag) {
      // 请求更新
      msg.Loading();
      await AutoGetUserInfo({
        openid: userInfo.openid,
        id_flag: id_flag
      })
      .then((res: any) => {
        this.setData({
          userInfo: res.data.data
        })
        console.log("setStorageSync",res.data.data);
        wx.setStorageSync('user', res.data.data);
      })
      msg.HideLoading();
    }
    this.setData({
      id_flag: id_flag,
      userInfo: userInfo,
    })
  },
  /**
   * @function 跳转登录
   */
  toLogin: function() {
    if(tapTimer) {
      tapCount++;
      return;
    }
    tapTimer = setTimeout(() => {
      if(this.data.userInfo && tapCount < 3) {
        this.toSetting(); // 已登录，跳转个人中心
        tapTimer = void 0;
        tapCount = 0;
        return;
      }
      // 未登录状态下跳转登录入口
      wx.navigateTo({
        url: `/pages/login/welcome/index`,
      })
      tapCount = 0;
      tapTimer = void 0;
    }, 400)
  },
  /**
   * @function 组件模块被点击
   * @param e 子组件通信内容
   */
  widgetsTap: function(e: event) {
    console.log("widgetsTap event",e);
    const type = e.detail.type;
    const navTo = (url: string) => {
      wx.navigateTo({
        url: url,
      })
    }
    switch (type) {
      case '我的报名':
        navTo('./apply/index');
        return;
      case '孩子报名':
        navTo('./apply/index');
        return;
      case '学生报名':
        navTo('./apply/index?TeaForStu=1');
        return;
      case '活动行程':
        navTo('./daily_detail/index')
        return;
        case '正在活动':
        navTo('./active_detail/index')
        return;
        case '任务中心':
          navTo('./task/index')
          return;
      default:
        return;
    }
  },
  /**
   * @function 前往隐私条款/用户协议
   */
  toPolicy: function(e: event) {
    const type = e.detail.type;
    const url = type == '用户服务协议' ? '../policy/serve_policy/index' : '../policy/private_policy/index';
    wx.navigateTo({
      url: url,
    })
  },
  /**
   * @function 前往个人信息中心（设置）
   */
  toSetting: function() {
    wx.navigateTo({
      url: './setting/index'
    })
  },
  /**
   * @function 前往客服中心
   */
  toContact: function() {
    msg.Loading();
    setTimeout(() => {
      msg.HideLoading();
    }, 800)
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(){
    this.getUserData();
    
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    this.setData({
      disable: false,
    })
    tapCount = 0;
    tapTimer = void 0;
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {
    this.setData({
      disable: true,
    })
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.getUserData();
    setTimeout(() => {
      wx.stopPullDownRefresh();
    }, 800)
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})